package myzzyl.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import myzzyl.domain.dto.SysRoleDto;
import myzzyl.domain.pojo.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;
import myzzyl.domain.vo.SysRoleVo;
import myzzyl.response.PageResponse;

import java.util.List;

/**
* @author 33249
* @description 针对表【sys_role(角色表)】的数据库操作Service
* @createDate 2025-08-20 14:33:28
*/
public interface SysRoleService extends IService<SysRole> {

    /**
     * 获取角色列表数据
     * @param pageNum 页码
     * @param pageSize 页数
     * @param sysRoleDto 角色表单请求封装类
     * @return 返回值
     */
    PageResponse<SysRole> pageQuery(Integer pageNum, Integer pageSize, SysRoleDto sysRoleDto);

    /**
     * 获取所有角色数据
     * @return 返回值
     */
    List<SysRole> getAll();


    /**
     * 获取角色绑定的资源
     * @param roleId 角色id
     * @return 返回值
     */
    List<String> getCheckedResources(Long roleId);

    /**
     * 获取角色详情数据
     * @param id 角色id
     * @return 返回值
     */
    SysRole getInfo(Long id);


    /**
     * 新增角色
     * @param sysRoleDto 角色表单请求封装类
     * @return 返回值
     */
    boolean add(SysRoleDto sysRoleDto);


    /**
     * 编辑角色
     * @param sysRoleDto 角色表单请求封装类
     * @return 返回值
     */
    boolean edit(SysRoleDto sysRoleDto);



    /**
     * 删除角色
     * @param id 角色id
     * @return 返回值
     */
    boolean remove(Long id);


}
